package com.ruoyi.mapper;

import java.util.List;
import com.ruoyi.domain.Page;
import org.apache.ibatis.annotations.Param;
import org.springframework.security.core.parameters.P;

/**
 * 页面组件Mapper接口
 * 
 * @author ruoyi
 * @date 2025-06-14
 */
public interface PageMapper 
{
    /**
     * 查询页面组件
     * 
     * @param pageId 页面组件主键
     * @return 页面组件
     */
    public Page selectPageByPageId(Long pageId);

    /**
     * 查询页面组件列表
     * 
     * @param page 页面组件
     * @return 页面组件集合
     */
    public List<Page> selectPageList(Page page);

    /**
     * 新增页面组件
     * 
     * @param page 页面组件
     * @return 结果
     */
    public int insertPage(Page page);

    /**
     * 修改页面组件
     * 
     * @param page 页面组件
     * @return 结果
     */
    public int updatePage(Page page);

    /**
     * 删除页面组件
     * 
     * @param pageId 页面组件主键
     * @return 结果
     */
    public int deletePageByPageId(Long pageId);

    /**
     * 批量删除页面组件
     * 
     * @param pageIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePageByPageIds(Long[] pageIds);

    int getPageIsVisable(@Param("userId") Long userId,@Param("pageId") Long pageId);

    void addUserPage(@Param("userId") Long userId,@Param("pageId") Long pageId);

    void deleteUserPage(@Param("userId") Long userId,@Param("pageId") Long pageId);

    List<Page> getUserPageList(@Param("userId") Long userId);

    void updatePageStatus(@Param("pageId") Long pageId);

    void initPageStauts();

    int getPageStatus(Long pageId);
}
